// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only

#ifndef QTBUTTONPROPERTYBROWSER_H
#define QTBUTTONPROPERTYBROWSER_H

#include "qtpropertybrowser.h"
#include "qtpropertybrowserglobal.h"

QT_BEGIN_NAMESPACE

class QtButtonPropertyBrowserPrivate;

class QT_QTPROPERTYBROWSER_EXPORT QtButtonPropertyBrowser : public QtAbstractPropertyBrowser
{
    Q_OBJECT
public:
    QtButtonPropertyBrowser(QWidget* parent = 0);
    ~QtButtonPropertyBrowser();

    void setExpanded(QtBrowserItem* item, bool expanded);
    bool isExpanded(QtBrowserItem* item) const;

Q_SIGNALS:

    void collapsed(QtBrowserItem* item);
    void expanded(QtBrowserItem* item);

protected:
    virtual void itemInserted(QtBrowserItem* item, QtBrowserItem* afterItem) override;
    virtual void itemRemoved(QtBrowserItem* item) override;
    virtual void itemChanged(QtBrowserItem* item) override;

private:
    QScopedPointer< QtButtonPropertyBrowserPrivate > d_ptr;
    Q_DECLARE_PRIVATE(QtButtonPropertyBrowser)
    Q_DISABLE_COPY_MOVE(QtButtonPropertyBrowser)
#if QT_VERSION_MAJOR == 5
    Q_PRIVATE_SLOT(d_func(), void slotUpdate())
    Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed())
    Q_PRIVATE_SLOT(d_func(), void slotToggled(bool))
#endif
};

QT_END_NAMESPACE

#endif
